/*
 * @Author: 0x9DEFA478
 * @Date: 2021-03-11 17:53:34
 * @LastEditTime: 2024-01-15 20:02:25
 * @LastEditors: 0x9DEFA478
 * @Description: 自定义类型
 * ============================================================================================================================================
 *                                                                                               ************      ****************************
 *                                                                                             ************      ****************************  
 *                                                                                           ************      ****************************    
 *                                                                                         ************      ****************************      
 *                                                                                       ************      ************                        
 *                                                                                     ************      ************                          
 *                                                                                   ************      ************                            
 *                                                                                 ************      ************                              
 *                                                                               ************      ************                                
 *                                                                             ************      ************                                  
 *                                                                           ************      ************                                    
 *                                                                         ************      ************                                      
 *                                                                       ************      ************                                        
 *                                                                     ************      ************                                          
 *                                                                   ************      ************                                            
 *                                                                 ************      ************                                              
 *                                                               ************      ************                                                
 *                                                             ************      ************                                                  
 *                                                           ************      ************                                                    
 *                                                         ************      ************                                                      
 *                                                       ************      ************                                                        
 *                                                     ************      ************                                                          
 *                                                   ************      ************                                                            
 *                                                 ************      ************                                                              
 *                                               ************      ************                                                                
 *                                             ************      ************                                                                  
 *                                           ************      ************                                                                    
 *                                         ************      ************                                                                      
 *                                       ************      ************                                                                        
 *                                     ************      ************                                                                          
 *                                   ************      ************                                                                            
 *                                 ************      ************                                                                              
 *                               ************      ************                                                                                
 *                             ************      ************                                                                                  
 *                           ************      ************                                                                                    
 *                         ************      ************                                                                                      
 *       ****************************      ************                                                                                        
 *     ****************************      ************                                                                                          
 *   ****************************      ************                                                                                            
 * ****************************      ************                                                                                              
 * ============================================================================================================================================
 * 
 */
#ifndef hH_Type_H_
#define hH_Type_H_
#include "H_Config.h"




typedef signed char                                               Hint8;
typedef unsigned char                                             Hbyte;

typedef signed short int                                          Hint16;
typedef unsigned short int                                        Huint16;

typedef signed int                                                Hint;
typedef unsigned int                                              Huint;

typedef signed long int                                           Hint32;
typedef unsigned long int                                         Huint32;

typedef signed long long int                                      Hint64;
typedef unsigned long long int                                    Huint64;




#if vH_Config_PointerSize == 1
//与(void*) 占用空间相同的整型
typedef Hint8                                                     Hsize;
//与(void*) 占用空间相同的无符号整型
typedef Hbyte                                                     Husize;
#elif vH_Config_PointerSize == 2
//与(void*) 占用空间相同的整型
typedef Hint16                                                    Hsize;
//与(void*) 占用空间相同的无符号整型
typedef Huint16                                                   Husize;
#elif vH_Config_PointerSize == 4
//与(void*) 占用空间相同的整型
typedef Hint32                                                    Hsize;
//与(void*) 占用空间相同的无符号整型
typedef Huint32                                                   Husize;
#elif vH_Config_PointerSize == 8
//与(void*) 占用空间相同的整型
typedef Hint64                                                    Hsize;
//与(void*) 占用空间相同的无符号整型
typedef Huint64                                                   Husize;
#else
#error "没有为Hsize与Husize找到合适的类型"
#endif

#if vH_Config_FunctionPointerSize == 1
//与(void (*)(void)) 占用空间相同的整型
typedef Huint8                                                    Hfunction;
#elif vH_Config_FunctionPointerSize == 2
typedef Huint16                                                   Hfunction;
#elif vH_Config_FunctionPointerSize == 4
typedef Huint32                                                   Hfunction;
#elif vH_Config_FunctionPointerSize == 8
typedef Huint64                                                   Hfunction;
#else
#error "没有为Hfunction找到合适的类型"
#endif




#ifndef NULL
#define NULL                                                      0
#endif

#ifndef cH_IsNull
#define cH_IsNull(Ptr)                                            ((Ptr)==NULL)
#endif




#endif // !hH_Type_H_
